#include "TCPclient.hpp"

void timeSendToServer(ThreadSafeQueue<std::string> & sendQueue){
    /**
    * @brief 定时向服务器要发送的数据队列中存入数据
    * @param sendQueue 要发送的数据队列
    */
    while (true) {
        std::string message = "从客户端发送的数据到服务端";
        sendQueue.push(message);  // 将消息推送到发送队列
        std::this_thread::sleep_for(std::chrono::seconds(2));  // 休眠2秒
    }
}

int main() {
    // 创建发送和接收的线程安全队列
    ThreadSafeQueue<std::string> sendQueue;
    ThreadSafeQueue<std::string> receiveQueue;

    // 初始化客户端，连接到服务器
    Client client("127.0.0.1", 8080, sendQueue, receiveQueue);
    
    std::thread send_thread(timeSendToServer, std::ref(sendQueue));  // 启动定时发送线程
    if (client.connectToServer()) {
        // 启动客户端接收和发送功能
        std::thread client_thread(&Client::start, &client);

        client_thread.join();  // 等待客户端线程结束
    }
    send_thread.join();  // 等待定时发送线程结束

    return 0;
}